Device and method for controlling a stream of data packets

ABSTRACT

The present invention proposes a device for controlling a stream of data packets, comprising: a buffer ( 2 ) adapted to receive a data packet stream from a data source ( 1 ) and to output said packet data stream with an output rate to a packet data communication network ( 7 ), a monitoring means ( 4 ) adapted to monitor a fill level of said buffer ( 2 ), a detection means ( 5 ) adapted to detect a fill level condition of said buffer ( 2 ), in which an incoming data packet has to be dropped, and adapted to control a dropping means ( 6 ) for dropping an incoming data packet upon detection of said fill level condition, and further comprising an output rate control means ( 5   a   , 8, 9, 10, 11 ) adapted to control an output rate adjusting means ( 3 ) which is adapted to adjust said output rate of said buffer ( 2 ), wherein said output rate control means, in response to said fill level condition detected by said detection means ( 5 ), issues a first control signal ( 5   a ) controlling said adjusting means ( 3 ) to increase a current output rate of said buffer to a predefined output rate, and said output rate control means, in response to each non dropped data packet received after said detection by said detection means ( 2 ), issues a second control signal ( 11   a ) controlling said adjusting means ( 3 ) to decrease a currently adjusted output rate. The present invention also proposes a corresponding control method.

FIELD OF THE INVENTION

[0001] The present invention relates to a device for controlling astream of data packets as well as to a corresponding method.

BACKGROUND OF THE INVENTION

[0002] Techniques for transmission of real-time signals such asstreaming audio or video, voice over IP (VoIP) or videoconferencingmedia streams in Internet Protocol (IP) based networks are in highdemand due to prospect of cost savings derived from the use ofdatacommunications equipment based on packet switched transmissioninstead of circuit-switched transmission networks.

[0003] To accomplish this task, certain Quality of Service (QoS)problems need to be solved. One such problem is the variability oftransmission delays in IP networks. Such a variability leads tovariation of packet interarrival times, even if the packets had beentransmitted at equal intervals. Such a variation in interarrival timesleads to burstiness of data stream bandwidth. Stated in other words,although data packets are transmitted by a data source (e.g. acommunication terminal or network element) in regular/constantintervals, these intervals might be subject to variation due to thetransmission path for/processing of the data packets within the network.As a result, the data packets are received at the destination (e.g. acommunication terminal or network element) in clusters or groups inwhich an interval between packets is shorter than the interval betweenthe sent packets, and/or wherein an interval between consecutivelyreceived data packets is longer than the interval between the sentpackets. This phenomenon is also referred to as burstiness.

[0004] This kind of variability can be reduced with traffic shaping.Traffic shaping is accomplished by using a traffic shaper device with aconfigurable output bandwidth. Note that throughout the specification, abandwidth (input or output bandwidth) of a device related to data packettransmission is intended to mean a corresponding data rate of thesent/received data packets (i.e. number of data and/or data packets perunit time).

[0005] If such a high number of packets arrives at the input of atraffic shaper device that they exceed the configured output bandwidth,they may be enqueued in a buffer inside the traffic shaper device andtransmitted later so that an output bandwidth limit criterion isfulfilled. Due to reduction of burstiness of streams, traffic shaping atnetwork edges makes aggregate bandwidth easier to manage. A reduction ofburstiness is accomplished since the data packet stream output from thetraffic shaper device is output at regular intervals (i.e. with theoutput bandwidth of the traffic shaper device) so that formation of datapacket clusters is suppressed or prevented.

[0006] Queuing, i.e. buffering of packets, however, presents twoproblems:

[0007] 1) with a large number of shaped streams (e.g. more than one datasource supplies data packet streams to a network element), a per-streambuffer space may be limited, and

[0008] 2) queuing increases end-to-end delay between a sendingcommunication side and a receiving communication side. This in turn hasadverse effects on quality in the case of VoIP and videoconferencing asexperienced by an end user.

[0009] Due to this, traffic shapers usually have a limited perstreambuffer space combined with burst allowance. Burst allowance is definedas an allowed variation of bandwidth from the nominal bit rate of thestream. Another name for burst allowance is leaky bucket regulator. Moreprecisely, the larger the burst allowance, the larger clusters ofpackets can pass through the shaper without queuing.

[0010] However, dimensioning of the burst allowance for a trafficshaping device is rather difficult, since too large a value for theburst allowance defeats the original purpose of traffic shaping, whereastoo small a value for the burst allowance leads to excessive packetlosses.

[0011] In the latter connection, it has to be noted that a degree ofallowable packet loss is determined for a respective application thedata of which are transmitted, e.g. for a speech application (voicetransmission) by the audio coding used in the media streams. Modernspeech codecs can usually tolerate a small amount (less than 1%) of lostframes without clear audible degradation in speech quality. However,several consecutive frame losses will inevitably lead to severe qualityproblems. In many cases a modern speech codec can tolerate 2-3 adjacentmissing frames without excessive degradation in subjective speechquality, provided that packet losses are separated by a large enoughnumber of packets that have arrived at the receiver. (Note that one ormore (audio) frames compose one data packet (IP data packet), while,however, one frame includes many data samples.) In listening tests, ithas been observed that the mean opinion score (MOS) is roughlyproportional to the average number of arrived packets between two packetlosses.

SUMMARY OF THE INVENTION

[0012] Hence, it is an object of the present invention to provide adevice and corresponding method for controlling a stream of datapackets, by means of which the dimensioning of the burst allowance for adevice for controlling a stream of data packets such as a trafficshaping device is no longer difficult and also adequate for data packetsoriginating from whatever application.

[0013] According to the present invention, this object is, for example,achieved by a device for controlling a stream of data packets,comprising a buffer adapted to receive a data packet stream from a datasource and to output said packet data stream with an output rate to apacket data communication network, a monitoring means adapted to monitora fill level of said buffer, a detection means adapted to detect a filllevel condition of said buffer, in which an incoming data packet has tobe dropped, and adapted to control a dropping means for dropping anincoming data packet upon detection of said fill level condition, andfurther comprising an output rate control means adapted to control anoutput rate adjusting means which is adapted to adjust said output rateof said buffer, wherein said output rate control means, in response tosaid fill level condition detected by said detection means, issues afirst control signal controlling said adjusting means to increase acurrent output rate of said buffer to a predefined output rate, and saidoutput rate control means, in response to each non-dropped data packetreceived after said detection by said detection means, issues a secondcontrol signal controlling said adjusting means to decrease a currentlyadjusted output rate.

[0014] According to advantageous further developments of the presentinvention:

[0015] said output rate control means comprises a first counter meansadapted to count a predetermined number N of non-dropped data packetsreceived after said detection by said detection means and a comparatormeans adapted to compare said predetermined number N with the currentcounter value;

[0016] said output rate control means further comprises a first logiccircuit adapted to output said second control signal if said comparatorjudges that the current counter value is less than or equal to saidpredetermined number N and a non-dropped data packet is received;

[0017] said first counter means is reset by said first control signal;

[0018] said first counter means is incremented if a second logic circuitjudges that said first control signal is not present and a non-droppeddata packet is received;

[0019] said currently adjusted output rate is decreased by apredetermined amount;

[0020] said predetermined amount is set to (ΔBW/N), with ΔBW being theamount by which a nominal output rate is increased and N being apredetermined number of received non-dropped data packets afterincreasing the nominaloutput rate;

[0021] said predetermined amount is set to (ΔBW/(X*N)), with ΔBW beingthe amount by which a nominal output rate is increased, N being apredetermined number of received non-dropped data packets afterincreasing the nominal output rate, and x being an arbitrary factor withX><1;

[0022] said output rate control means comprises means for controllingsaid output rate adjusting means to reset the output rate of said bufferto said nominal output rate after said predetermined number of receivednon-dropped data packets after increasing the nominal output rate hasbeen received;

[0023] said output rate control means controls said output rateadjusting means to reset the output rate of said buffer to said nominaloutput rate dependent on a buffer fill level of said buffer;

[0024] said output rate control means comprises a third logic circuitadapted to issue a control signal if the fill level of said buffermonitored by said monitoring means is equal to a predetermined filllevel of said buffer and if said predetermined number N of receivednon-dropped data packets after increasing the nominal bandwidth has beenreceived; and

[0025] said predefined output rate is a maximum output rate of saidbuffer

[0026] Also, according to the present invention, the above object isachieved by a corresponding method for controlling a stream of datapackets having like features and like advantageous further developments.

[0027] Stated in other words, according to the present invention, theburst allowance is adjusted in a predefined range dynamically based onthe number of arrived packets since a last packet loss. For example,immediately after a packet loss, burst allowance is at the upper limitof the allowable range, and is decremented as more packets arrivewithout intervening packet losses.

[0028] With the device and/or method according to the present inventionbeing implemented, it is advantageously enabled that bandwidth burstsare allowed when they are useful, i.e., after a packet loss when forexample a codec really needs information to maintain good speechquality. The higher limit of burst allowance (i.e. the maximum outputrate, as a specific example of predefined output rate, is the sum of anominal output rate plus the amount by which the nominal output rate isincreased (ΔBW)) should be chosen such that traffic engineeringrequirements for the network in question are fulfilled. The lower limit(i.e. the nominal output rate) may be estimated from end-to-end delaycalculation. Note that a nominal output rate is considered to representa default output rate with which the buffer is configured to be operatedunder normal operating conditions (i.e. without a necessity to droppackets).

[0029] The present invention can also advantageously be utilized indynamic jitter buffer adjustment.

BRIEF DESCRIPTION OF THE DRAWINGS

[0030] Still further objects, features and advantages of the presentinvention will become fully apparent upon referring to the subsequentdescription thereof in greater detail with reference to the accompanyingdrawings, in which

[0031]FIG. 1 shows an embodiment of the device for controlling a streamof data packets according to the present invention;

[0032]FIG. 2 shows a further embodiment as a modification to beimplemented to the embodiment shown in FIG. 1;

[0033]FIG. 3 shows a diagram of the output bandwidth (output rate) ofthe device for controlling a stream of data packets versus a number ofarrived packets after a previous packet loss for the case of animplementation-as described in connection with FIG. 1; and

[0034]FIG. 4 shows a diagram of the output bandwidth (output rtae) ofthe device for controlling a stream of data packets versus a number ofarrived packets after a previous packet loss for the case of animplementation as described in connection with FIG. 2.

DETAILED DESCRIPTION OF THE EMBODIMENTS

[0035] The present invention will now be described in detail withreference to the drawings.

[0036] Firstly, it has to be noted that although in the foregoingreference has been made to speech transmission as a particular exampleof packet data, the present invention is not limited thereto. Any kindof data flow may be subjected to the present invention as long as thedata flow is a packet data stream. Also, the packet data stream need notto conform to any specific protocol. For example, the data stream mayconform to the ATM (Asynchronous Transfer Mode) protocol, or to theInternet Protocol (IP), or to any other packet data based transmissionprotocol such as TCP/IP (Transmission Control Protocol/InternetProtocol) or the like. Also, the present invention is applicable inconnection with packet loss control contexts as they are occurring injitter buffers. Therefore, the foregoing and subsequent descriptionrefer only to a packet data stream in its most general way.

[0037]FIG. 1 shows an embodiment of the device for controlling a streamof data packets according to the present invention.

[0038] A data source 1 supplies data Din via an intermediate droppingmeans 6 (to be explained later) represented as a controlled switch to aninput of a buffer 2 of a buffer size (storage capacity) S. The data Dinare supplied at an input rate Rin. Although only one data source isshown, it is of course possible that several data sources togethersupply data to the buffer. In such a case, the data rate Rin iscorrespondingly increased as it is represented by the sum of individualinput data rates. At an output of the buffer, data Dout are output at adata rate Rout to a packet based network 7 and/or network element(and/or terminal device).

[0039] Note that the input data rate may vary according to the behaviorof the data source(s) 1. Also, the output data rate may vary. Inparticular, the output data rate Rout is adjusted by an output rateadjusting means 3-adapted to set the output rate Rout under control ofcontrol signals 5 a, 11 a, (14 a as shown in FIG. 2) to be explainedlater. (Under normal operating conditions the output rate may be assumedto be set to a nominal output rate as a default value).

[0040] Connected to the buffer 2 is a monitoring means 4 adapted tomonitor the buffer fill level. That is, each time data and/or a datapacket Din is received at the input of the buffer at a respective rateRin, a signal (Rin) is supplied to a counter 4 and the counter value isincremented. Likewise, each time data and/or a data packet Dout isoutput at a respective (currently set) output rate Rout, a signal (Rout)is supplied to the counter 4 and the counter value is decremented. Thus,the counter value C1 of the counter 4 always represents the fill levelof the buffer 2. The counter 4 is preferably an upward-downward counter.However, it may be realized as an upward counter and a downward counterwith the difference of count values thereof being calculated in order toobtain the current buffer fill level.

[0041] The current fill level of the buffer 2 is represented by thecounter value C1, which is supplied to a detection means 5 (a comparatormeans). At the detection means 5, the counter value C1 is compared withthe size of the buffer S. That is, it is detected whether the countervalue C1 is less or equal the buffer size. If not, i.e. if the countervalue C1 is greater than the buffer size S, the comparator 5 detectsthat the buffer is full and/or will overflow and issues a control signal5 a supplied to the dropping means 6. Note that in a modification (notshown), the detection means may also be configured such that it isdetected whether the buffer is almost full by comparing the buffer filllevel with a certain percentage of the buffer size, so that it isdetected whether the fill level exceeds e.g. 95% of the buffer size S ornot.

[0042] In response to the control signal 5 a, the switch 6 will beopened so that subsequently arriving data/data packets will notreach/enter the buffer and are thus dropped/discarded. During this, thebuffer continues to output data and will at some time reach a state inwhich the detection means/comparator 5 issues a signal indicating thatthe buffer is not full so that dropping of data packets is stopped (thedropping means/switch 6 is closed again).

[0043] When the detection means 5 detects that the buffer is full (or,according to the conceivable modification, nearly full) and that one ormore packets will have to be dropped, the detection signal 5 a is alsosupplied as a first control signal to the output rate adjusting means 3.In response to this first control signal, the setting of Rout of thebuffer is effected such that Rout is set from a nominal (i.e. default)output rate (bandwidth) BWnom to a predefined output rate such as forexample to its maximum output rate. That is, the output rate (bandwidth)BW is BWnom+ΔBW (as shown in FIGS. 3 and 4) and thus increased by a anamount ΔBW to a predefined output rate such as the maximum output rate.Note that the comparator 5 acts as a detection means as well as it actsas a part of the output rate control means.

[0044] Also, the signal 5 a is supplied to a reset input of anothercounter 9, such that a counter value of the counter 9 will be reset tozero each time the signal 5 a is supplied thereto. In addition, thesignal 5 a is fed via an inverting means 88 to an input of an AND gate 8as a second logic circuit. Another input of the AND gate 8 is connectedto the signal line labeled Rin indicating the reception of a data packetat the buffer 2 (and incrementing the counter 4). Thus, the counter 9counts, represented by a counter value C2, the number of receivedpackets after a dropped packet. As long as the signal Sa is activeand/or issued by the detection means 5, the counter 9 remains reset tozero. Only if the signal 5 a is changed to be inactive (since the bufferis not full), the counter begins to count. The counter counts only thosedata packets received at the buffer 2 which are received while thesignal 5 a is inactive (e.g. has a logical level of zero), so that theoutput of the inverter 88 is active (e.g. has a logical value of one).Then, each received data packet will lead to an output signal of the ANDgate 8 which increments the counter 9 (counter value C2).

[0045] The counter value C2 is compared by a comparator means and/orcomparator 10 with a preset value N. N represents the number of datapackets received since a recent loss/dropping of data packets, for whichnumber the output rate Rout of the buffer is controlled to bedecremented. Thus, for each counter value C2 smaller or equal to N, thecomparator 10 outputs an active signal (e.g. of logical value of one)supplied to an input terminal of an AND gate 11 (a first logic circuit).To another input terminal of the AND gate 11 there is connected thesignal line labeled Rin indicating the reception of a data packet at thebuffer 2 (and incrementing the counter 4). Thus, as long as the countervalue C2 is smaller than or equal to N and a data packet is received(after the recent packet dropping), the AND gate 11 outputs a controlsignal 11 a supplied as a second control signal to the output rateadjusting means 3. In response to the second control signal, the outputrate adjusting means 3 is controlled to decrement the output rate Rout(output bandwidth), e.g. to decrement it by a predetermined amount.Hence, the maximum output rate is decremented N times in this example.

[0046] Assuming that the output rate adjusting means is configured suchthat the decrementing step is set to a absolute value of ΔBW/N, then theoutput rate (bandwidth) BW is reduced from its predefined (e.g.maximum)output rate value BWnom+ΔBW to its nominal value BWnom after receptionof N consecutive data packets after the last loss/dropping of a datapacket.

[0047] This functional principle of the arrangement illustrated in FIG.1 is represented in FIG. 3. Namely, FIG. 3 shows a diagram of the outputbandwidth BW of the device for controlling a stream of data packetsversus a number of arrived packets C2 after a previous packet loss. Thecondition of the buffer 2 in which a previous packet had to be droppedis indicated by C2=0 (counter 9 is reset in this condition). Then, eachtime a data packet is received after the previous dropping, the outputrate (bandwidth) is reduced by a step of ΔBW/N, so that after N receivedpackets, the nominal output bandwidth of the buffer is reached again(restored). In each case in which a packet has to be dropped before Npackets have been received, the counter 9 will be reset to zero and theoutput rate of the buffer 2 will be set to the predefined (e.g. itsmaximum) output rate value. With respect to the diagram shown in FIG. 3,this will correspond to a “jump” to the position C2=0 and BW=BWnom+ΔBW.Thus, a current output rate is increased to a predefined output rateeach time a packet has to be dropped.

[0048] Herein above, it has been assumed that the step width fordecrementing the maximum output bandwidth of the buffer is set to ΔBW/N.However, its conceivable that the step width is set ΔBW/(X*N), X beingan arbitrary factor not equal to one, i.e. X><1.

[0049] In a case of X>1, the step width for decrementing is reduced ascompared to the above example of ΔBW/N. Thus, after reception of N datapackets after the recently dropped data packet, the output bandwidthwill not have been reduced to its nominal bandwidth.

[0050] Likewise, in a case of X<1, the step width for decrementing isincreased as compared to the above example of ΔBW/N. Thus, afterreception of N data packets after the recently dropped data packet, theoutput bandwidth will have been reduced below its nominal bandwidth.(This implementation may be less advantageous since the buffer will takea longer time to reduce its fill level because the output rate/bandwidthof the buffer is more quickly reduced.)

[0051] In any of the two immediately preceding cases (i.e. for x>1 orx<1), it may be desirable to reset the output bandwidth to its nominalvalue BWnom.

[0052] To this end, in a modification of the embodiment of the inventionas described in connection with FIG. 2 (and FIG. 4 representing the caseof X>1), the output rate control means comprises means 12, 13, 14 forcontrolling said output rate adjusting means 3 to reset the output rateof said buffer 2 to said nominal output rate after said predeterminednumber of received non-dropped data packets after increasing the nominalbandwidth has been received.

[0053] According to the modification, said output rate control meanscontrols said output rate adjusting means 3 to reset the output rate ofsaid buffer 2 to said nominal output rate dependent on a buffer filllevel of said-buffer 2.

[0054] An implementation of said modification is shown in FIG. 2. Abuffer fill level at which the nominal output bandwidth is desired to bereset is derived by weighting the maximum fill level with a weightingfactor W in a weighting device such as a multiplier 12. Of course, theweighting factor W should be chosen to be less than one, since thebuffer 2 may never reach a fill level higher than its maximum fill levelS.

[0055] The weighted fill level W*S is supplied to an input terminal of acomparator means 13. The comparator means 13 compares the value of W*Swith the current fill level, represented by the counter value C1, of thebuffer 2. The comparator 13 outputs an active signal (of a high levelsuch as logical one) if the current counter value C1 (buffer fill level)is below or equal to the value W*S, i.e. if the buffer fill level hasreached or fallen below the predetermined fill level.

[0056] The output signal of the comparator 13 is supplied as an inputsignal to an AND gate 14 as a third logic circuit. Other input signalsof said AND gate 14 are the counter value C2 representing the number ofreceived packets after the last dropping of a packet and thepredetermined number N of packets for which the output bandwidth is tobe reduced/decremented. Thus, only if C2 equals N, and if simultaneouslythe predetermined fill level S*W or a lower fill level of the buffer 2has been reached, the,logic circuit 14 outputs a (third) control signal14 a. The signal 14 a is supplied to the output rate adjusting means 3,which in response to the reception of the third control signal 14 aresets the output bandwidth of the buffer 2 to its nominal value BWnom.Note that the logic circuit 14 may be composed of two AND gates, onechecking for equality of C2 with N, and the other checking subsequentlythe simultaneous presence of the conditions C1<=W*S and C2=N. Only forsimplicity of drawing, the logic circuit 14 has been represented as asingle logic gate.

[0057] The functionality of this modification is illustrated in FIG. 4.Similarly to FIG. 3, after detection of a cell/packet to be dropped ordropped (C2=0), the output bandwidth is increased to a predefined outputrate, e.g. to its maximum value BW=BWnom+ΔBW. Upon reception of eachsubsequent packet, the output bandwidth is reduced by a step of widthΔBW/(X*N). Hence, after reception of N data packets, the outputbandwidth BW of the buffer 2 will have reached a value ofBW=BWnom+ΔBW−N*(66 BW/X*N)=BWnom+ΔBW−(ΔBW/X). Then, the output bandwidthis no longer decremented because of the output signal of the first logiccircuit 11 shown in FIG. 1 and explained in connection therewith. Only acertain number of received data packets afterwards (i.e. after more thanN received packets after a dropping of a packet), the condition C1<=W*Sis also fulfilled (due to the buffer becoming more empty), and then theoutput bandwidth of the buffer is reduced by a “jump”, that is, it isreset, to its nominal value BWnom, as shown in FIG. 4.

[0058] Herein above, different cases for a step width for decrementingthe output bandwidth have been considered. In any of these cases, thestep width had been assumed to be equal for each step of decrementing.However, in a further modification (not shown) it is conceivable thatthe step width also depends on the number of received packets. Forexample, as in the preceding cases, immediately after dropping of a datapacket the bandwidth is increased to a predefined output rate such as-toits maximum value. However, afterwards, a first number of firstdecrementing steps uses a smaller decrement, so that the buffer will besupported to be emptied more quickly due to a higher output bandwidth,while afterwards, the decrementing steps may use a larger decrement asthe buffer has already become “more empty”, before reducing the bufferoutput bandwidth to its nominal value.

[0059] The reduction to the nominal value may be effected such thatBWnom is reached after N received data packets (similar as in the casedescribed in connection with FIG. 1, 3), or that the output bandwidthafter N received data packets is still above the nominal outputbandwidth and is reset upon the occurrence of a specific condition(similar as in the case described in connection with FIG. 2, 4).

[0060] A) For example, a decrementing step width may be configured inthe output rate adjustment means to be (ΔBW/((N+1−C2)*N)). Then, witheach received data packet the decrementing step width is varied: for thefirst received packet C2=1, the decrement is (ΔBW/N²), while for theN-th received packet, the decrement is (ΔBW/N). Of course, this examplemay be combined with a factor X as mentioned above.

[0061] B) Still further, the decrementing step width may be defined tobe equal within intervals of counter values C2, while being differentbetween respective intervals. For example, a decrementing step width maybe configured in the output rate adjustment means to be (ΔBW/N) for allvalues of C2 between C2=0 . . . N2, and to be (ΔBW/(X*N)) for all valuesof C2 between C2=((N/2)+1) . . . N, X being a factor as mentionedfurther above and X>1. Also, more than two intervals are possible to bedefined. (Note that in the immediately preceding example, this could beconsidered as if N intervals were defined).

[0062] C) The proposals as indicated under item A) and B) above may alsobe combined, so that within intervals of count values C2, thedecrementing step width may vary, or that within one or more intervalsthe step width may be constant while within the other intervals it maybe varying.

[0063] Heretofore, the present invention has mainly been described witha focus on a specific hardware implementation thereof which was chosenas an example. Nevertheless, it should be clear that the presentinvention covers also any hardware arrangement as long as it is operatedaccording to the method according to the present invention.

[0064] Namely, any hardware arrangement operated such that it implementsa method for controlling a stream of data packets, comprising the stepsof buffering, in a buffer 2, a data packet stream received from a datasource 1 and outputting said packet data stream from said buffer 2 withan output rate to a packet data communication network 7, monitoring afill level of said buffer 2, detecting a fill level condition of saidbuffer 2, in which an incoming data packet has to be dropped, andcontrolling a dropping means 6 for dropping an incoming data packet upondetection of said fill level condition, and further comprising the stepsof controlling an output rate adjusting means 3 to adjust said outputrate of said buffer 2, wherein in response to said fill level conditiondetected in said detecting step, a first control signal 5 a is issued,controlling said adjusting means 3 to increase a current output rate ofsaid buffer to a predefined output rate, and in response to eachnon-dropped data packet received after said detecting, a second controlsignal 11 a is issued, controlling said adjusting means 3 to decrease acurrently adjusted output rate, is intended to be covered by the presentinvention.

[0065] Also, any method wherein according to respective furtherdevelopments

[0066] said controlling step comprises a first counting step forcounting a predetermined number N of non-dropped data packets receivedafter said detection in said detecting step and a comparing step forcomparing said predetermined number N with the current counting value;

[0067] said controlling step further comprises a first logic evaluatingstep for outputting said second control signal 11 a if said comparingstep yields that the current counter value is less than or equal to saidpredetermined number N and a non-dropped data packet is received;

[0068] there is a further step of resetting and restarting said firstcounting step by said first control signal 5 a;

[0069] there is a step of incrementing, in said first counting, if asecond logic evaluating step yields that said first control signal 5 ais not present and a non-dropped data packet is received;

[0070] said currently adjusted output rate is decreased by apredetermined amount;

[0071] said predetermined amount is set to (ΔBW/N), with ΔBW being theamount by which a nominal output rate is increased and N being apredetermined number of received non-dropped data packets afterincreasing the nominaloutput rate;

[0072] said predetermined amount is set to (ΔBW/(X*N)), with ΔBW beingthe amount by which a nominal output rate is increased, N being apredetermined number of received non-dropped data packets afterincreasing the nominaloutput rate, and x being an arbitrary factor withX><1;

[0073] there is a step of controlling said output rate adjusting means 3to reset the output rate of said buffer 2 to said nominal output rateafter said predetermined number of received non-dropped data packetsafter increasing the nominal output rate has been received;

[0074] there is a step of controlling said output rate adjusting means 3to reset the output rate of said buffer (2) to said nominal output ratedependent on a buffer fill level of said buffer 2;

[0075] there is a third logic evaluating step for issuing a controlsignal 14 a if the fill level of said buffer monitored in saidmonitoring step is equal to a predetermined fill level of said buffer 2and if said predetermined number N of received non-dropped data packetsafter increasing the nominal output rate has been received, is intendedto be covered by the present invention.

[0076] Accordingly, as has been described herein before, the presentinvention proposes a device for controlling a stream of data packets,comprising: a buffer 2 adapted to receive a data packet stream-from adata source 1 and to output said packet data stream with an output rateto a packet data communication network 7, a monitoring means 4 adaptedto monitor a fill level of said buffer 2, a detection means 5 adapted todetect a fill level condition of said buffer 2, in which an incomingdata packet has to be dropped, and adapted to control a dropping means 6for dropping an incoming data packet upon detection of said fill levelcondition, and further comprising an output rate control means 5 a, 8,9, 10, 11, 12, 13, 14 adapted to control an output rate adjusting means3 which is adapted to adjust said output rate of said buffer 2, whereinsaid output rate control means, in response to said fill level conditiondetected by said detection means 5, issues a first control signal 5 asaid adjusting means 3 to increase a current output rate of said bufferto a predefined output rate, and said output rate control means, inresponse to each non-dropped data packet received after said detectionby said detection means 2, issues a second control signal 11 acontrolling said adjusting means 3 to decrease a currently adjustedoutput rate. The present invention also proposes a corresponding controlmethod.

[0077] Although the present invention has been described herein abovewith reference to its preferred embodiments, it should be understoodthat numerous modifications may be made thereto without departing fromthe spirit and scope of the invention. It is intended that all suchmodifications fall within the scope of the appended claims.

1. A device for controlling a stream of data packets, comprising: abuffer (2) adapted to receive a data packet stream from a data source(1) and to output said packet data stream with an output rate to apacket data communication network (7), a monitoring means (4) adapted tomonitor a fill level of said buffer (2), a detection means (5) adaptedto detect a fill level condition of said buffer (2), in which anincoming data packet has to be dropped, and adapted to control adropping means (6) for dropping an incoming data packet upon detectionof said fill level condition, and further comprising an output ratecontrol means (5, 5 a, 8, 9, 10, 11; 12, 13, 14) adapted to control anoutput rate adjusting means (3) which is adapted to adjust said outputrate of said buffer (2), wherein said output rate control means, inresponse to said fill level condition detected by said detection means(5), issues a first control signal (5 a) controlling said adjustingmeans (3) to increase a current output rate of said buffer to apredefined output rate and said output rate control means, in responseto each non-dropped data packet received after said detection by saiddetection means (5), issues a second control signal (11 a) controllingsaid adjusting means (3) to decrease a currently adjusted output rate.2. A device according to claim 1, wherein said output rate control meanscomprises a first counter means (9) adapted to count a predeterminednumber (N) of non-dropped data packets received after said detection bysaid detection means (2) and a comparator means (10) adapted to comparesaid predetermined number (N) with the current counter value.
 3. Adevice according to claim 2, wherein said output rate control meansfurther comprises a first logic circuit (11) adapted to output saidsecond control signal (11 a) if said comparator judges that the currentcounter value is less than or equal to said predetermined number (N) anda non-dropped data packet is received.
 4. A device according to claim 2,wherein said first counter means is reset by said first control signal(5 a).
 5. A device according to claim 4, wherein said first countermeans is incremented if a second logic circuit (8) judges that saidfirst control signal (5 a) is not present and a non-dropped data packetis received.
 6. A device according to claim 1, wherein said currentlyadjusted output rate is decreased by a predetermined amount.
 7. A deviceaccording to claim 6, wherein said predetermined amount is set to(ΔBW/N), with ΔBW being the amount by which a nominal output rate isincreased and N being a predetermined number of received non-droppeddata packets after increasing the nominaloutput rate.
 8. A deviceaccording to claim 6, wherein said predetermined amount is set to(ΔBW/(X*N)), with ΔBW being the amount by which a nominal output rate isincreased, N being a predetermined number of received non-dropped datapackets after increasing the nominal output rate, and X being anarbitrary factor with X><1.
 9. A device according to claim 8, whereinsaid output rate control means comprises means (12, 13, 14) forcontrolling said output rate adjusting means (3) to reset the outputrate of said buffer (2) to said nominal output rate after saidpredetermined number of received non-dropped data packets afterincreasing the nominal output rate has been received.
 10. A deviceaccording to claim 9, wherein said output rate control means controlssaid output rate adjusting means (3) to reset the output rate of saidbuffer (2) to said nominal output rate dependent on a buffer fill levelof said buffer (2).
 11. A device according to claim 10, wherein saidoutput rate control means comprises a third logic circuit (14, 13, 12)adapted to issue a control signal (14 a) if the fill level of saidbuffer monitored by said monitoring means is equal to a predeterminedfill level of said buffer (2) and if said predetermined number (N) ofreceived non-dropped data packets after increasing the nominal bandwidthhas been received.
 12. A method for controlling a stream of datapackets, comprising: buffering, in a buffer (2), a data packet streamreceived from a data source (1) and outputting said packet data streamfrom said buffer (2) with an output rate to a packet data communicationnetwork (7), monitoring a fill level of said buffer (2), detecting afill level condition of said buffer (2), in which an incoming datapacket has to be dropped, and controlling a dropping means (6) fordropping an incoming data packet upon detection of said fill levelcondition, and further comprising the steps of controlling an outputrate adjusting means (3) to adjust said output rate of said buffer (2),wherein in response to said fill level condition detected in saiddetecting step, a first control signal (5 a) is issued, controlling saidadjusting means (3) to increase a current output rate of said buffer toa predefined output rate, and in response to each non-dropped datapacket received after said detecting, a second control signal (11 a) isissued, controlling said adjusting means (3) to decrease a currentlyadjusted output rate.
 13. A method according to claim 12, wherein saidcontrolling step comprises first counting step for counting apredetermined number (N) of non-dropped data packets received after saiddetection in said detecting step and a comparing step for comparing saidpredetermined number (N) with the current counting value.
 14. A methodaccording to claim 13, wherein controlling step further comprises afirst logic evaluating step for outputting said second control signal(11 a) if said comparing step yields that the current counter value isless than or equal to said predetermined number (N) and a non-droppeddata packet is received.
 15. A method according to claim 13, furthercomprising a step of resetting and restarting said first counting stepby said first control signal (5 a).
 16. A method according to claim 15,comprising incrementing, in said first counting, if a second logicevaluating step yields that said first control signal (5 a) is notpresent and a non-dropped data packet is received.
 17. A methodaccording to claim 12, wherein said currently adjusted output rate isdecreased by a predetermined amount.
 18. A method according to claim 17,wherein said predetermined amount is set to (ΔBW/N), with ΔBW being theamount by which a nominal output rate is increased and N being apredetermined number of received non-dropped data packets afterincreasing the nominaloutput rate.
 19. A method according to claim 17,wherein said predetermined amount is set to (ΔBW/(X*N)), with ΔBW beingthe amount by which a nominal output rate is increased, N being apredetermined number of received non-dropped data packets afterincreasing the nominal output rate, and x being an arbitrary factor withX><1.
 20. A method according to claim 19, comprising controlling saidoutput rate adjusting means (3) to reset the output rate of said buffer(2) to said nominal output rate after said predetermined number ofreceived non-dropped data packets after increasing the nominal bandwidthhas been received.
 21. A method according to claim 20, comprisingcontrolling said output rate adjusting means (3) to reset the outputrate of said buffer (2) to said nominal output rate dependent on abuffer fill level of said buffer (2)
 22. A device according to claim 21,comprising a third logic evaluating step for issuing a control signal(14 a) if the fill level of said buffer monitored in said monitoringstep is equal to a predetermined fill level of said buffer (2) and ifsaid predetermined number (N) of received non-dropped data packets afterincreasing the nominal bandwidth has been received.
 23. A device forcontrolling a stream of data packets according to claim 1, wherein saidbuffer (2) to which said data packets stream is supplied is a jitterbuffer.
 24. A method for controlling a stream of data packets accordingto claim 12, wherein said data packet stream is buffered in a jitterbuffer.
 25. A device according to claim 1, wherein said predefinedoutput rate is a maximum output rate of said buffer.
 26. A methodaccording to claim 12, wherein said predefined output rate is a maximumoutput rate of said buffer.